package com.jackstraw.create.pojo;

import lombok.Data;

/**
 * 版权所有： 稻草人
 * 所在包：com.jackstraw.create.pojo
 * 文件名：
 * 项目：create
 * 功能描述：数据库连接信息
 * 修改时间：2021-04-16 15:56
 *
 * @author jackstraw
 */
@Data
public class DatabaseConnectInfo {

    /**
     * 连接路径
     */
    private String url;

    /**
     * 端口
     */
    private String port;

    /**
     * 数据库名称
     */
    private String dbName;

    /**
     * 用户名称
     */
    private String username;

    /**
     * 密码
     */
    private String password;

    /**
     * 数据类型
     */
    private String dbType;

    /**
     * 比较两个连接是否相同
     *
     * @param databaseConnectInfo
     * @return
     */
    public boolean compare(DatabaseConnectInfo databaseConnectInfo) {
        try {
            if (databaseConnectInfo.getUrl().equals(url) && databaseConnectInfo.getPort().equals(port) && databaseConnectInfo.getDbName().equals(dbName)) {
                return true;
            } else {
                return false;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 数据库类型枚举
     */
    public enum DatabaseTypeEnum {

        MYSQL8("mysql8", "mysql8.0+"),
        SQLServer("sqlserver", "sqlserver");
        /**
         * 数据库类型
         */
        private String type;

        /**
         * 说明
         */
        private String remark;

        DatabaseTypeEnum(String type, String remark) {
            this.type = type;
            this.remark = remark;
        }

        public String getType() {
            return type;
        }

        /**
         * 根据类型获取对应枚举对象
         *
         * @param type
         * @return
         */
        public static DatabaseTypeEnum getDatabaseTypeEnumByType(String type) {
            for (DatabaseTypeEnum databaseTypeEnum : DatabaseTypeEnum.values()) {
                if (databaseTypeEnum.getType().equals(type)) {
                    return databaseTypeEnum;
                }
            }
            return null;
        }
    }
}
